<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
</head>
<body>
	<p id="result"></p>
	<p id="p0"></p>
	<p id="p1"></p>
	<p id="p2"></p>
	<p id="p3"></p>
	<p id="p4"></p>
	<script type="text/javascript">
	// ================================
	var eleResult = document.getElementById("result");
	if (!window.console) {
	    window.console = {};
	}
	console.log = function(result) {
	    var text = document.createTextNode(result), br = document.createElement("br");
	    eleResult.appendChild(text);
	    eleResult.appendChild(br);
	};

	if (typeof Array.prototype.forEach != "function") {
	  Array.prototype.forEach = function (fn, context) {
	    for (var k = 0, length = this.length; k < length; k++) {
	      if (typeof fn === "function" && Object.prototype.hasOwnProperty.call(this, k)) {
	          fn.call(context, this[k], k, this);
	      }
	    }
	  };
	}

	var database = {
	  users: ["张含韵", "江一燕", "李小璐"],
	  sendEmail: function (user) {
	    if (this.isValidUser(user)) {
	      console.log("你好，" + user);
	    } else {
	      console.log("抱歉，"+ user +",你不是本家人");    
	    }
	  },
	  isValidUser: function (user) {
	    return /^张/.test(user);
	  }
	};

	// 给每个人法邮件
	database.users.forEach(  // database.users中人遍历
	  database.sendEmail,    // 发送邮件
	  database               // 使用database代替上面database.sendEmail方法中的上下文this
	);
	// ========================



		/*var array=[1,2,3,4,5];
		// 数组
		array.forEach(console.log)
		array.forEach(function(value,index,arr){
			document.getElementById("p"+index).innerText=value;
			document.getElementById("p"+index).setAttribute("name",arr[index]);

		})
		var database={
			users:["张涵予","江一燕","李小璐"],
			sendMail:function(user){
				if (this.isValidUser(user)) {
					console.log("你好:"+user);	
				} else {
					console.log("抱歉，"+user+"你不是本家人");
				}
			},
			isValidUser:function(user){
				return /^张/.test(user);
			}
		}
		database.users.forEach(database.sendMail,database)
		// 你好:张涵予
		// 抱歉，江一燕你不是本家人
		// 抱歉，李小璐你不是本家人
		var database={
			users:["张涵予","江一燕","李小璐"],
			sendMail:function(user){
				if (this.isValidUser(user)) {
					console.log("你好:"+user);	
				} else {
					console.log("抱歉，"+user+"你不是本家人");
				}
			},
			isValidUser:function(user){
				return /^张/.test(user);
			}
		}
		function isValidUser(user){
			return /^张/.test(user);
		}
		database.users.forEach(database.sendMail)
		// 你好:张涵予
		// 抱歉，江一燕你不是本家人
		// 抱歉，李小璐你不是本家人
		var database={
			users:["张涵予","江一燕","李小璐"],
			sendMail:function(user){
				if (this.isValidUser(user)) {
					console.log("你好:"+user);	
				} else {
					console.log("抱歉，"+user+"你不是本家人");
				}
			},
			isValidUser:function(user){
				return /^张/.test(user);
			}
		}
		var fn={
			isValidUser:function(user){
				return /^张/.test(user);
			}
		}
		database.users.forEach(database.sendMail,fn)
		// 你好:张涵予
		// 抱歉，江一燕你不是本家人
		// 抱歉，李小璐你不是本家人*/
	</script>
</body>
</html>